Databases are susceptible to corruption/inconsistencies while they are in use. Inconsistencies can be introduced by operator error, hardware failure, a problem with controller firmware, etc.
A file system contains on-disk metadata structures that allow the file system driver to expose a multi-file, multi-directory abstraction on top of a set of storage blocks. If any of this metadata becomes corrupt, a system utility called FSCK (file system consistency check, and repair) can be run to remove file system inconsistencies. A tool commonly used to identify and fix corruptions of NTFS (New Technology File Systems) is referred to as “chkdsk.”
A file system consistency check can be run in several phases; one time-consuming phase tallies blocks allocated to files against blocks on a free block list. Errors such as one block found allocated to more than one file (duplicate allocation), and blocks that are neither allocated nor on the free block list (lost blocks), are fixed in this phase. Because running a file system consistency check to repair a file system that is mounted for read/write operations can potentially cause severe data corruption/loss, the file system is normally checked while unmounted, mounted read-only, or with the system in a special maintenance mode that limits the risk of such damage. Thus, the file system may be unavailable while a file system consistency check is performed—the file system is not accessible during execution of a file system consistency check. However, with the increasing size of very large file systems (hundreds of terabytes or even petabytes in size), the time to run a file system consistency check has lengthened to days or even weeks. Because most such large systems also require availability 24 hours a day, seven days a week, the length of time needed to run a file system consistency check has become a real issue.
In summary, a problem with processes such as FSCK is that they can take a relatively long time to run. While FSCK is run, the file system may be taken offline, which makes it inaccessible to other system components and processes that rely on it.